From: Ivan Molodetskikh Date: Sun, 27 Dec 2020 17:39:22 +0000 (+0300) Subject: workspace: Don't unfreeze layout during overview animation X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~616^2^2~623 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=d82dcd6f67f4f7b4aa7fb3fee82fec0782c6ecbd;p=gnome-shell.git workspace: Don't unfreeze layout during overview animation During overview closing animation the allocation expands more or less every frame. Unfreezing the layout then leads to windows snapping to their new position if e.g. a window was closed which doesn't look nice. Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3216 Part-of: --- diff --git a/js/ui/workspace.js b/js/ui/workspace.js index 74d23840b..de1ce2d31 100644 --- a/js/ui/workspace.js +++ b/js/ui/workspace.js @@ -566,8 +566,13 @@ var WorkspaceLayout = GObject.registerClass({ this._lastBox = containerBox.copy(); // If the containers size changed, we can no longer keep around - // the old windowSlots, so we must unfreeze the layout - if (this._layoutFrozen && containerAllocationChanged) { + // the old windowSlots, so we must unfreeze the layout. + // + // However, if the overview animation is in progress, don't unfreeze + // the layout. This is needed to prevent windows "snapping" to their + // new positions during the overview closing animation when the + // allocation subtly expands every frame. + if (this._layoutFrozen && containerAllocationChanged && !Main.overview.animationInProgress) { this._layoutFrozen = false; this.notify('layout-frozen'); }